<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <canvas id="c1" width="600" height="400"></canvas>

    <script>
        /** @type {HTMLCanvasElement} */
        // 画布
        let c1 = document.getElementById("c1")
        // 画笔
        let ctx = c1.getContext("2d")

        let img = new Image()
        img.src = "./img/people.png"
        img.onload = function () {
            // 图片对象 + 画布位置 + 图片宽高
            ctx.drawImage(img, 0, 0, 600, 400)
            // 获取每个像素点信息
            let imgData = ctx.getImageData(0, 0, 600, 400)
            console.log(imgData)

            /**
            for (let i = 0; i < imgData.data.length; i += 4) {
                let avg = (imgData.data[i] + imgData.data[i + 1] + imgData.data[i + 2]) / 3
                // rgb 三个值相等时，就是灰色
                imgData.data[i] = avg
                imgData.data[i + 1] = avg
                imgData.data[i + 2] = avg
            }
            */

            for (let i = 0; i < imgData.data.length; i += 4) {
                // rgb 取补
                imgData.data[i] = 255 - imgData.data[i]
                imgData.data[i + 1] = 255 - imgData.data[i + 1]
                imgData.data[i + 2] = 255 - imgData.data[i + 2]
            }
            
            // 第2-3参数表示 ImageData左上角的坐标
            // 后4个参数表示从x1 y1开始扩展x2 y2长度
            ctx.putImageData(imgData, 0, 0, 300, 200, 300, 200)
        }

    </script>
</body>

</html>